Imports TeamUp.GarantiaTransacional
Imports TeamUp.dado

Public Class NeUsuario
    Inherits Model

    Public Sub New(ByVal objGarantiaTransacional As GTransacional)
        GarantiaTransacional = objGarantiaTransacional
    End Sub


    Public Function cadastrarUsuario(ByVal strNome As String, ByVal strLogin As String, ByVal strSenha As String, Optional ByVal blnGerarErro As Boolean = False) As Integer
        Dim objUsuario As DaUsuario
        Dim objFuncionario As NeFuncionario

        Try
            GarantiaTransacional.iniciarTransacao("neUsuario.cadastrarUsuario".ToUpper)
            objUsuario = New DaUsuario(GarantiaTransacional)

            cadastrarUsuario = objUsuario.cadastrarUsuario(strNome, strLogin, strSenha)

            objUsuario = Nothing

            objFuncionario = New NeFuncionario(GarantiaTransacional)

            objFuncionario.cadastarFuncionario(strNome)

            objFuncionario = Nothing

            If blnGerarErro = True Then
                Throw New Exception("Teste da garantia transacional.")
            End If

            GarantiaTransacional.commit("neUsuario.cadastrarUsuario".ToUpper)
        Catch ex As Exception
            GarantiaTransacional.rollBack("neUsuario.cadastrarUsuario".ToUpper)
            Throw ex
        Finally
        End Try
    End Function


    Public Function alterarUsuario(ByVal strCodigo As String, ByVal strNome As String, ByVal strLogin As String, ByVal strSenha As String)
        Dim objUsuario As DaUsuario

        Try
            GarantiaTransacional.iniciarTransacao("neUsuario.alterarUsuario".ToUpper)
            objUsuario = New DaUsuario(GarantiaTransacional)

            objUsuario.alterarUsuario(strCodigo, strNome, strLogin, strSenha)

            GarantiaTransacional.commit("neUsuario.alterarUsuario".ToUpper)
        Catch ex As Exception
            GarantiaTransacional.rollBack("neUsuario.alterarUsuario".ToUpper)
            Throw ex
        Finally
        End Try
    End Function

    Public Function excluirUsuario(ByVal strCodigo As String)
        Dim objUsuario As DaUsuario

        Try
            GarantiaTransacional.iniciarTransacao("neUsuario.excluirUsuario".ToUpper)
            objUsuario = New DaUsuario(GarantiaTransacional)

            objUsuario.excluirUsuario(strCodigo)

            GarantiaTransacional.commit("neUsuario.excluirUsuario".ToUpper)
        Catch ex As Exception
            GarantiaTransacional.rollBack("neUsuario.excluirUsuario".ToUpper)
            Throw ex
        Finally
        End Try
    End Function

    Public Function consultarUsuario(Optional ByVal strCodigo As String = "") As Data.DataSet
        Dim objUsuario As DaUsuario
        objUsuario = New DaUsuario(Nothing)
        consultarUsuario = objUsuario.consultarUsuario(strCodigo)
        objUsuario = Nothing
    End Function
End Class
